package util

import (
	"net/http"
	"strings"

	"github.com/gin-gonic/gin"
	ut "github.com/go-playground/universal-translator"
	"github.com/go-playground/validator/v10"
)

// 请求参数验证错误信息-返回中文提示
func ValidateParam(c *gin.Context, err error) {
	// 1. 获取翻译器
	trans, _ := c.Get("trans")

	// 2. 解析验证错误
	errs := err.(validator.ValidationErrors)
	var errMsg []string
	for _, e := range errs {
		// 3. 将错误信息翻译为中文
		errMsg = append(errMsg, e.Translate(trans.(ut.Translator)))
	}

	// 4. 返回格式化的错误提示
	c.JSON(http.StatusBadRequest, gin.H{
		"code": 400,
		"msg":  "参数错误：" + strings.Join(errMsg, ";"),
	})
	return
}
